C++复习 friend友元

  1. friend 友元类和友元函数
  2. 相同class的各个objects互为友元

friend 友元类和友元函数

  • 能访问私有成员
  • 破坏封装性
  • 友元关系不可传递
  • 友元关系的单向性
  • 友元声明的形式及数量不受限制
//声明方式
class CLASS_NAME
{
    friend //函数声明
    friend //类声明

    public:
        //...
    private:
        //...
}

相同class的各个objects互为友元

class complex
{
public:
    complex (double r = 0,double i = 0):re(r),ri(i){}

    //相同class的各个objects互为友元
    int func(const complex& param){return param.re + param.ri;}

private:
    double re,im;
}